package com.hsgene.order.dto.console.detail;

import com.hsgene.order.dto.console.OrderRefundInfoDto;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description: 平台订单详情，基础信息
 * @ProjectName: hdas-geneshop
 * @Package: com.hsgene.order.dto.console.detail
 * @Author: 江承良
 * @CreateDate: 2018/11/26 14:59
 * @Version: 1.0
 * Copyright: Copyright (c) 2018
 */
public class OrderBaseInfo implements Serializable {

    private static final long serialVersionUID = 918528792796394497L;
    /**
     * 订单id
     */
    private String orderId;

    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 订单状态
     */
    private Integer status;

    /**
     * 是否显示确认报告按钮（0：否，1：是）
     */
    private Integer confirmReportBtn = 0;

    /**
     * 是否显示修改价格按钮（0-不显示，1-显示）
     */
    private Integer showUpdatePriceBtn = 0;

    /**
     * 是否显示变更套餐按钮
     */
    private Integer showChangePackageBtn = 0;

    /**
     * 此订单是否变更过套餐（如果为null则是为变更过，如果不为null则是已变更过的）
     */
    private Integer packageChangeFlag;

    /**
     * 订单来源
     */
    private Integer orderOrigin;

    /**
     * 异常出现的位置
     */
    private Integer exceptionPosition;

    /**
     * 检测目的
     */
    private String testingPurpose;

    /**
     * 下单时间
     */
    private Date createDateTime;

    /**
     * 支付状态(init：未付款, charged：已付款, confirmed：已确认)
     */
    private String chargeStatus;

    /**
     * 订单价格(当chargeStatus = charged 或 confirmed 时即为实收价格)
     */
    private BigDecimal totalCharges;

    /**
     * 订单应收价格
     */
    private BigDecimal receivablePrice;

    /**
     * 增项费用
     */
    private BigDecimal additionalCost;

    /**
     * 积分
     */
    private Integer totalCommission;

    /**
     * 积分发放时间（来自订单A表）
     */
    private Date sendPointDateTime;

    /**
     * 病例类型（来自dcw表）
     */
    private String dcwCaseType;

    /**
     * 疾病名称（来自订单A表）
     */
    private String cancersName;

    /**
     * dcw编号（来自dcw表）
     */
    private String dcwNo;

    /**
     * dcw评分（来自dcw表）
     */
    private Integer approvePoints;

    /**
     * 是否曾经做基因检测（1：是，0：否）
     */
    private String isBeforeDoneGeneticTesting;

    /**
     * 特殊说明
     */
    private String remarks;

    /**
     * 是否显示更改医生按钮（0-显示  1-不显示）
     */
    private Integer isChangedDoctor;

    /**
     * 发放积分状态（待发放积分sending_point、已发放积分send_point_complete）
     */
    private String orderPointSendStatus;

    /**
     * 检测证明
     */
    private String testingProofImagesUrl;

    /**
     * 检测图片
     */
    private String testingImagesUrl;

    /**
     * 检测证明集合
     */
    private List<String> testingProofImagesUrls;

    /**
     * 样本图片
     */
    private String collectSampleImagesUrl;

    /**
     * 样本图片集合
     */
    private List<String> collectSampleImagesUrls;

    /**
     * 快递图片（快递回单）
     */
    private String courierImagesUrl;

    /**
     * dcw修改说明
     */
    private String dcwUpdateRemark;

    /**
     * 是否锁定（0:未锁定,1:已锁定）
     */
    private Integer lockStatus;

    /**
     * 此订单在整个流程中所处的位置
     */
    private Integer position;

    /**
     * 是否是异常状态的订单(默认为false)
     */
    private Boolean exceptionOrder = false;

    /**
     * 操作记录
     */
    private List<OrderOperationDetailInfo> orderOperationDetailInfos;

    /**
     * 支付信息
     */
    private List<OrderPaymentInfo> orderPaymentInfo;

    /**
     * 医生信息
     */
    private OrderDoctorInfo orderDoctorInfo;

    /**
     * 患者信息
     */
    private OrderPatientInfo orderPatientInfo;

    /**
     * 套餐信息
     */
    private List<OrderPackageInfo> orderPackageInfos;

    /**
     * 退款信息列表
     */
    private List<OrderRefundInfoDto> refunds;

    /**
     * dcw信息
     */
    private OrderDcwInfo orderDcwInfo;

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getConfirmReportBtn() {
        return confirmReportBtn;
    }

    public void setConfirmReportBtn(Integer confirmReportBtn) {
        this.confirmReportBtn = confirmReportBtn;
    }

    public Integer getShowUpdatePriceBtn() {
        return showUpdatePriceBtn;
    }

    public void setShowUpdatePriceBtn(Integer showUpdatePriceBtn) {
        this.showUpdatePriceBtn = showUpdatePriceBtn;
    }

    public Integer getShowChangePackageBtn() {
        return showChangePackageBtn;
    }

    public void setShowChangePackageBtn(Integer showChangePackageBtn) {
        this.showChangePackageBtn = showChangePackageBtn;
    }

    public Integer getPackageChangeFlag() {
        return packageChangeFlag;
    }

    public void setPackageChangeFlag(Integer packageChangeFlag) {
        this.packageChangeFlag = packageChangeFlag;
    }

    public Integer getOrderOrigin() {
        return orderOrigin;
    }

    public void setOrderOrigin(Integer orderOrigin) {
        this.orderOrigin = orderOrigin;
    }

    public Integer getExceptionPosition() {
        return exceptionPosition;
    }

    public void setExceptionPosition(Integer exceptionPosition) {
        this.exceptionPosition = exceptionPosition;
    }

    public Boolean getExceptionOrder() {
        return exceptionOrder;
    }

    public void setExceptionOrder(Boolean exceptionOrder) {
        this.exceptionOrder = exceptionOrder;
    }

    public String getTestingPurpose() {
        return testingPurpose;
    }

    public void setTestingPurpose(String testingPurpose) {
        this.testingPurpose = testingPurpose;
    }

    public Date getCreateDateTime() {
        return createDateTime;
    }

    public void setCreateDateTime(Date createDateTime) {
        this.createDateTime = createDateTime;
    }

    public String getChargeStatus() {
        return chargeStatus;
    }

    public void setChargeStatus(String chargeStatus) {
        this.chargeStatus = chargeStatus;
    }

    public BigDecimal getTotalCharges() {
        return totalCharges;
    }

    public void setTotalCharges(BigDecimal totalCharges) {
        this.totalCharges = totalCharges;
    }

    public Integer getTotalCommission() {
        return totalCommission;
    }

    public void setTotalCommission(Integer totalCommission) {
        this.totalCommission = totalCommission;
    }

    public Date getSendPointDateTime() {
        return sendPointDateTime;
    }

    public void setSendPointDateTime(Date sendPointDateTime) {
        this.sendPointDateTime = sendPointDateTime;
    }

    public String getDcwCaseType() {
        return dcwCaseType;
    }

    public void setDcwCaseType(String dcwCaseType) {
        this.dcwCaseType = dcwCaseType;
    }

    public String getCancersName() {
        return cancersName;
    }

    public void setCancersName(String cancersName) {
        this.cancersName = cancersName;
    }

    public String getDcwNo() {
        return dcwNo;
    }

    public void setDcwNo(String dcwNo) {
        this.dcwNo = dcwNo;
    }

    public Integer getApprovePoints() {
        return approvePoints;
    }

    public void setApprovePoints(Integer approvePoints) {
        this.approvePoints = approvePoints;
    }

    public String getIsBeforeDoneGeneticTesting() {
        return isBeforeDoneGeneticTesting;
    }

    public void setIsBeforeDoneGeneticTesting(String isBeforeDoneGeneticTesting) {
        this.isBeforeDoneGeneticTesting = isBeforeDoneGeneticTesting;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public Integer getIsChangedDoctor() {
        return isChangedDoctor;
    }

    public void setIsChangedDoctor(Integer isChangedDoctor) {
        this.isChangedDoctor = isChangedDoctor;
    }

    public String getOrderPointSendStatus() {
        return orderPointSendStatus;
    }

    public void setOrderPointSendStatus(String orderPointSendStatus) {
        this.orderPointSendStatus = orderPointSendStatus;
    }

    public String getTestingProofImagesUrl() {
        return testingProofImagesUrl;
    }

    public void setTestingProofImagesUrl(String testingProofImagesUrl) {
        this.testingProofImagesUrl = testingProofImagesUrl;
    }

    public String getTestingImagesUrl() {
        return testingImagesUrl;
    }

    public void setTestingImagesUrl(String testingImagesUrl) {
        this.testingImagesUrl = testingImagesUrl;
    }

    public List<String> getTestingProofImagesUrls() {
        return testingProofImagesUrls;
    }

    public void setTestingProofImagesUrls(List<String> testingProofImagesUrls) {
        this.testingProofImagesUrls = testingProofImagesUrls;
    }

    public String getCollectSampleImagesUrl() {
        return collectSampleImagesUrl;
    }

    public void setCollectSampleImagesUrl(String collectSampleImagesUrl) {
        this.collectSampleImagesUrl = collectSampleImagesUrl;
    }

    public List<String> getCollectSampleImagesUrls() {
        return collectSampleImagesUrls;
    }

    public void setCollectSampleImagesUrls(List<String> collectSampleImagesUrls) {
        this.collectSampleImagesUrls = collectSampleImagesUrls;
    }

    public String getCourierImagesUrl() {
        return courierImagesUrl;
    }

    public void setCourierImagesUrl(String courierImagesUrl) {
        this.courierImagesUrl = courierImagesUrl;
    }

    public String getDcwUpdateRemark() {
        return dcwUpdateRemark;
    }

    public void setDcwUpdateRemark(String dcwUpdateRemark) {
        this.dcwUpdateRemark = dcwUpdateRemark;
    }

    public Integer getLockStatus() {
        return lockStatus;
    }

    public void setLockStatus(Integer lockStatus) {
        this.lockStatus = lockStatus;
    }

    public Integer getPosition() {
        return position;
    }

    public void setPosition(Integer position) {
        this.position = position;
    }

    public List<OrderOperationDetailInfo> getOrderOperationDetailInfos() {
        return orderOperationDetailInfos;
    }

    public void setOrderOperationDetailInfos(List<OrderOperationDetailInfo> orderOperationDetailInfos) {
        this.orderOperationDetailInfos = orderOperationDetailInfos;
    }

    public List<OrderPaymentInfo> getOrderPaymentInfo() {
        return orderPaymentInfo;
    }

    public void setOrderPaymentInfo(List<OrderPaymentInfo> orderPaymentInfo) {
        this.orderPaymentInfo = orderPaymentInfo;
    }

    public OrderDoctorInfo getOrderDoctorInfo() {
        return orderDoctorInfo;
    }

    public void setOrderDoctorInfo(OrderDoctorInfo orderDoctorInfo) {
        this.orderDoctorInfo = orderDoctorInfo;
    }

    public OrderPatientInfo getOrderPatientInfo() {
        return orderPatientInfo;
    }

    public void setOrderPatientInfo(OrderPatientInfo orderPatientInfo) {
        this.orderPatientInfo = orderPatientInfo;
    }

    public List<OrderPackageInfo> getOrderPackageInfos() {
        return orderPackageInfos;
    }

    public void setOrderPackageInfos(List<OrderPackageInfo> orderPackageInfos) {
        this.orderPackageInfos = orderPackageInfos;
    }

    public List<OrderRefundInfoDto> getRefunds() {
        return refunds;
    }

    public void setRefunds(List<OrderRefundInfoDto> refunds) {
        this.refunds = refunds;
    }

    public OrderDcwInfo getOrderDcwInfo() {
        return orderDcwInfo;
    }

    public void setOrderDcwInfo(OrderDcwInfo orderDcwInfo) {
        this.orderDcwInfo = orderDcwInfo;
    }

    public BigDecimal getReceivablePrice() {
        return receivablePrice;
    }

    public void setReceivablePrice(BigDecimal receivablePrice) {
        this.receivablePrice = receivablePrice;
    }

    public BigDecimal getAdditionalCost() {
        return additionalCost;
    }

    public void setAdditionalCost(BigDecimal additionalCost) {
        this.additionalCost = additionalCost;
    }
}
